Skip to content
导航栏

Yao Studio 介绍

Yao未提供Yao Studio图形化拖拉拽的界面。但是有Studio 命令/Studio API

Studio脚本拥有最高的执行权限(root)。可以操作应用目录下所有的数据文件与脚本文件。利用这一点,可以进行代码生成代码的操作。

Studio目录

Yao 应用目录下有一个/studio的目录,Studio函数与命令只能调用这个目录下的js脚本。在studio目录下的js脚本可以访问文件系统所有的命名空间: systemdslscript

js
//system	/data/app/data	应用数据
function ReadFile() {
  let fs = new FS('system');
  let data = fs.ReadFile('/f1.txt'); // /data/app/data/f1.txt
  return data;
}

//dsl 除 scripts 外的所有目录(仅 Studio 脚本可用)
function ReadFile() {
  let fs = new FS('dsl');
  let data = fs.ReadFile('/models/f1.mod.json'); // /data/app/models/f1.mod.json
  return data;
}

//script 脚本目录(仅 Studio 脚本可用)
function ReadFile() {
  let fs = new FS('script');
  let data = fs.ReadFile('/f1.js'); // /data/app/scripts/f1.js
  return data;
}

Yao Studio 命令

Yao Studio命令用来执行/studios目录下的所有的脚本。注意:该命令只允许在YAO_ENV=development模式下运行

Studio并不是一个单独的命令,而是Yao的一个子命令,命令的调用方式如下。

sh
# 脚本名字 ScriptName
# 方法名称 Method
# 参数列表 param1 param2
yao studio run ScriptName.Method param1 param2

Studio JS API

js脚本统一使用函数Studio中调用/studio目录下的脚本的函数。调用方法像其它的js函数一样。

js
//参数一是脚本名字.函数名
//参数二开始是函数的参数列表。
const data = Studio('file.DotName', modelName);

Studio WEB API

Studio脚本函数也可以通过web rest api接口调用。不过跟一般的api接口调用不一样,它有单独的端口与入口。

Studio api请求的基础路由地址:http://127.0.0.1:5077/service/,端口可以通过环境变量YAO_STUDIO_PORT进行配置,比如在.env文件中修改。

如果需要调用脚本函数model.CreateOne,按以下的格式调用。

sh
curl -X POST http://127.0.0.1:5077/service/model \
   -H 'Content-Type: application/json' \
   -H 'Authorization: Bearer <Studio JWT>' \
   -d '{ "args":["yao.demo.pet"],"method":"CreateOne"}'

url中的model是脚本名称,脚本函数访问与参数放在请求的payload里。

Xgen action中调用

Xgen已经封装了Studio脚本函数的调用方法

如果需要在xgen表单界面上调用studio接口。在form.json配置中增加action配置。

注意只能使用管理员账号登录才能自动获取到studiotoken

json
{
  "title": "重新生成代码",
  "icon": "icon-layers",
  "showWhenAdd": true,
  "showWhenView": true,
  "action": [
    {
      "name": "StudioModel",
      "type": "Studio.model", //类型名称设置成studio.脚本名称
      "payload": {
        //访问与参数
        "method": "CreateOne",
        "args": ["cms.help"]
      }
    },
    {
      "name": "Confirm",
      "type": "Common.confirm",
      "payload": {
        "title": "提示",
        "content": "处理完成"
      }
    }
  ]
}

基于 Studio 开发的应用

  • Yao-admin,Yao官方开发的根据数据库结构生成Yao应用的应用。这个版本目前是适用于0.10.2版本Yao

  • Yao-Admin-0.10.3,基于官方的应用适配的Yao 0.10.3版本

  • 根据模型创建表格与表单,根据模型定义生成界面配置文件。比如执行下面的代码,能根据你的模型定义生成界面Table/Form配置文件。需要下载安装插件脚本。

    sh
    yao studio run init.CreateTable pet